1. Field of the Invention
The present invention related to an improved data processing system and, in particular, to a method and system for provisioning and de-provisioning software and resources assigned to a computing system based upon the organizational role of the user of the computing system.
2. Background of the Invention
Modern enterprise computing environments include a variety of networked computing devices such as servers, gateways, desktop clients, and pervasive devices including personal digital assistants (“PDA”) and pocket PC's. Within a company's or organization's computing resources, there may be literally thousands of these devices at any given time, usually with one user assigned to each device.
So, for example, a particular member of an organization or company employee may have a desktop computer or PC assigned to him or her, usually located on his or her desk in his or her office. Additionally, this member or employee may also be assigned a PDA, as well as a laptop computer for use in telecommuting or during business trips.
Each of these devices will have a variety of hardware and software resources installed on it, some of which may be a part of a “standard” or “company wide” configuration, and other parts of which may be dependent on the member's or employee's function in the company or organization. For example, a company may adopt Linux as their company-wide operating system, so both the laptop and desktop PC's may be configured with a version of the Linux operating system along with some utility programs to allow them to access the company's wired or wireless networks. Additionally, the employee may have a job description which will require him or her to draft documents, and prepare budgets, so both the laptop and the desktop computers may be configured with IBM's Lotus WordPro™ word processor application program, as well as Lotus 1-2-3 ™ spreadsheet application. Further, assume that this employee or member is involved in sales, so a contact management application program may be provided on the desktop and laptop computers, as well. The PDA may also be configured with “filters” or “readers” for the word processor, spreadsheet, and contact management file types, as well.
Now consider a second employee or member of the same organization who has a different job description, such as a technical support engineer. This person's computers would receive the company-wide options, such as the Linux operating system and networking components, but would not necessarily need the contact management application or the spreadsheet program. Instead, this second employee would need a Java ™ programming suite, such as IBM's Visual Age ™ suite, and a client program to remotely access a trouble ticket database.
In some organizations and company's, there is a manual process for configuring and maintaining these types of computers. As a new employee or member is added to the group, a person within the Information Technology (“IT”) group is responsible to select the appropriate computer platforms, to select the appropriate application programs, and to install each program manually. Then, as the user's job function changes (e.g. he or she moves to a different department, is promoted, etc.), someone within the IT group must manually change the software configuration of the user's computers (e.g. laptop, desktop, PDA, etc.). Additionally, each time an application program is upgraded, the IT group must manually apply the upgrades to the user's computer(s), as well as re-install all of the application programs each time a computer is replaced or repaired. Even worse, most of these installation and upgrade actions require the IT professional to be physically colocated with the computer being modified, which may require substantial travel to support a geographically distributed work force.
This manual process can be onerous even to a small group or company, and can be paralyzing to medium and large size enterprises. The record keeping requirements can be substantial in order to manage licenses (e.g. manage a company's investment in software products), proliferate new application program installations, provide upgrades, and “swap out” computers for newer or more powerful systems.
To answer this problem, several companies have developed enterprise configuration management (“CM”) tools which allow an IT department to manage the software configurations of a wide variety of networked computers from a centralized and remote location. One such CM tool is IBM's Tivoli Configuration Manager. Other tools with similar objectives are provided by Computer Associates and BMC Software.
Then IBM Tivoli Configuration Manager can help a company or organization gain total control over their enterprise software and hardware using its software distribution module which allows an IT department to rapidly and efficiently deploy complex mission-critical applications to multiple locations from a central point. Following initial deployment of systems, the Tivoli CM inventory module automatically scans for and collects hardware and software configuration information from computer systems across the managed enterprise. The software deployment lifecycle has many steps, and Tivoli CM allows IT departments to manage the systems from packaging, planning and administration to delivery, installation and reporting.
Tivoli CM provides a function known as “multicasting”, which can significantly reduce network bandwidth usage, and which can help in an environment where there are slow speed links between locations (e.g. reaching wirelessly networked devices or systems located through a slow bridge). Using multicasting, software distribution time is independent of the number of targets, as each software package is only sent across the network once.
Tivoli CM also supports pervasive computing devices with integrated support for Palm Computing's PalmOS™, PocketPC's, and Nokia Communicator devices. This allows an IT department to update the configuration information and software on these devices using the same tools with which desktop and server systems are managed. By gaining control over the growing number of pervasive devices being deployed for business applications across the corporate enterprise; IT administrators do not need to learn to use a separate, specialized tool for managing these pervasive computing devices.
Tivoli CM also includes Enterprise Directory Support, which allows IT administrators to leverage organizational information stored in enterprise directories in order to determine a set of targets for a software distribution or an inventory scan. This allows software distribution and inventory operations to be targeted by specific users, and administrators can store information about users in a single location.
Additionally, Tivoli CM provides secure management of systems outside a corporate firewall through supporting secure software distribution and inventory operations through firewalls. Environments that have multiple levels of firewalls are also supported, which reduces security exposures inherent in managing in an extended enterprise environment, and allows a IT department to extend their management systems to support a company's or organization's customers and business partners, as well.
All of these management functions are conveniently provided through Administrative Consoles which run under a popular operating system such as Microsoft Corporation's Windows operating systems. By providing a single administrative console for both software distribution and inventory operations, and requiring only a single log-on for access to all IBM Tivoli Configuration Manager administrative tools, improved operational efficiency and ease of use for administrators are realized.
However, there still remains a primarily manual task of determining which software application programs and modules should be provisioned onto which computing systems based upon the intended user or “owner” of each system. While these types of configuration management systems greatly simplify the distribution, updating, uninstalling, and inventorying of a list or set of application programs for each computing system within the managed enterprise, they do little to help the IT administrator identify the proper application programs which should or should not be provisioned onto a particular computer or device.